为什么不把它们放在{}内?我常遇到这玩艺,一直不懂。

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:46:03
class test
{
private:
int a,b;
public:
test(int c,int d):a(c),b(c){

}
....
}
为什么不把它们放在{}内?有什么好处?

这种情况还是比较多见的,不是为了节省代码,而是为了性能。一般在类函数声明中如果要为类的私有成员赋值都可以这样子做,当然不是像上面那位说的那样不能放在括号里面,完全可以。只是在:号后的初始化列表只能使用拷员构造的行式。

a(c)和b(c)称为初始化式,它们所在的位置称为初始化列表,用于声明实例时对成员变量进行初始化,结果就是a=c并且b=c

*******************************

这里属于直接初始化,放入大括号内就不允许用小括号这种方式了,只能用等号,而用等号的复制初始化其程序执行开销比直接初始化要大,为了提高效率,应该用这种方式。

这样少些点代码噶

一楼说的对.